<?php
/*******************************************************************************

    FinalsClub.org is a platform for students and faculty to collaborate
    and share their knowledge with the world.

    Copyright (C) 2009  Andrew Magliozzi
 
    This file is a part of FinalsClub.org.

    FinalsClub.org is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
    To contact FinalsClub.org, send an email to info@finalsclub.org, or
    send mail to Finals Club, c/o Veritas Tutors, 1132 Massachusetts Avenue,
    Cambridge, MA 02138.

*******************************************************************************/

class SemesterPeer extends BaseSemesterPeer {
	
	public static function retrieveById($semester_id) {
		$c = new Criteria();
		if($semester_id)
			$c->add($c->getNewCriterion(SemesterPeer::ID, $semester_id, Criteria::EQUAL));
		else
			return false;
		return SemesterPeer::doSelectOne($c);
	}
	
	/**
	 * Retrieve all semesters
	 * @return array of Semester objects
	 */
	public static function retrieveAll() {
		return SemesterPeer::doSelect(new Criteria());
	}
	
	/**
	 * Retrieve the current semester
	 * @return a single Semester object
	 */
	public static function retrieveCurrent() {
		$con = Propel::getConnection();
		$query = "select semesters.* from semesters where year(%s) = %s limit 1";
		$sql = sprintf($query, SemesterPeer::YEAR, date('Y', time()));
		$stmt = $con->prepare($sql);
		$stmt->execute();
		
		$semesters = parent::populateObjects($stmt);
		if(isset($semesters[0])) {
			return $semesters[0];
		} else {
			return null;
		}
		
	}
	
}
